/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller.insert;

import hibernate.HibernateUtil;
import hibernate.dao.EnderecoFuncionario;
import hibernate.dao.Funcionario;
import hibernate.dao.TelefoneFuncionario;
import java.util.Date;
import javax.swing.JOptionPane;
import org.hibernate.Session;

/**
 *
 * @author Users
 */
public class FuncionarioController {

    private FuncionarioListener mFuncionarioListener = null;

    public FuncionarioController() {
    }

    public FuncionarioController(FuncionarioListener pFuncionarioListener) {

        mFuncionarioListener = pFuncionarioListener;
    }

    public void InserirFuncionario(String fNome, String fCpf,  
            String fCid, String fNum, String fBairro, String fCEP, String fRua,
            String fEstado, String fCPF, String fRG, String fTel, String fCel,
            String fTipo, String fValorHora) {

        try {
            TelefoneFuncionario telFunc = new TelefoneFuncionario();
            EnderecoFuncionario ef = new EnderecoFuncionario();
            Funcionario func = new Funcionario();

            telFunc.setTelCliNumero(fTel);
            telFunc.setTelFunTipo(fTipo);
            telFunc.setFuncionario(func);


            func.setFuncCpf(fCPF);
            func.setFuncRg(fRG);
            func.setFuncFlag(true);
            func.setFuncNome(fNome);
            Date date = new Date();
            func.setFuncDataInicio(date);
            func.setFuncTipo(fTipo);
            func.setFuncValorHora(Float.parseFloat(fValorHora));
            func.setEnderecoFuncionario(ef);


            ef.setEndFuncCidade(fCid);
            ef.setEndFuncEstado(fEstado);
            ef.setEndFuncCep(fCEP);
            ef.setEndFuncNumero(Integer.parseInt(fNum));
            ef.setEndFuncRua(fRua);


            Session a = HibernateUtil.getSessionFactory().getCurrentSession();
            a.beginTransaction();
            a.save(telFunc);
            a.save(ef);
            a.save(func);
            a.getTransaction().commit();
            JOptionPane.showMessageDialog(null," Funcionario cadastrado com Sucesso! ");
            
        } catch (Exception e) {
            
            mFuncionarioListener.onFuncionarioError(e.getMessage());
        }
        
    }

    public void setFuncionarioListener(FuncionarioListener pFuncionarioListener) {
        mFuncionarioListener = pFuncionarioListener;
    }
}

